home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib05.dsk
/
TAGSORT DEMO.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
61 lines
10 REM ******************************
12 REM * TAGSORT DEMO *
14 REM * BASIC: APPLESOFT *
16 REM * AUTHOR: PAUL IRWIN *
18 REM * WRITTEN: MAY, 1981 *
20 REM * *
22 REM * SUBROUTINES: *
24 REM * $0300.037F - AMPERJUMP *
26 REM * $8B00.8FFF - TAGSORT& *
28 REM * *
30 REM ******************************
35 REM FETCH AND INITIALISE AMPERJUMP IN $300.37F
40 PRINT CHR$(4);"BLOADAMPERJUMP.OBJ0": CALL 768
45 REM FETCH SORT ROUTINE INTO $8B00.8EFF
50 PRINT CHR$(4);"BLOADTAGSORT&.OBJ0"
55 HIMEM: 35584: REM SET TO $8B00 SO THAT STRINGS DON'T OVERWRITE PROGRAMS
75 REM SET &A TO $8B00 IN AMPERJUMP
90 POKE 843,0: POKE 844,139
95 REM SORT STRING AND SORT TAG VECTORS
100 DIM R$(20),T%(20)
102 S = 1:F = 20
105 REM INITIALISE TAGS 1 ... 20
110 FOR I = S TO F:T%(I) = I: NEXT
120 REM INITIALISE STRINGS TO DATA
130 FOR I = S TO F: READ R$(I): NEXT
140 REM LIST THE ARRAYS BEFORE SORTING
160 PRINT : PRINT " B E F O R E"
165 PRINT
170 PRINT "INDEX TAG STRING"
180 PRINT "----- --- ------"
190 FOR I = S TO F: PRINT RIGHT$(" " + STR$(I),3) + RIGHT$(" " + STR$(T%(I)),6) +" " +R$(I): NEXT
200 REM CALL THE SORT
205 INPUT "PRESS RETURN TO SORT ";MM$
210 & A(R$,T%,S,F)
220 REM LIST THE ARRAYS AFTER SORTING
230 PRINT " ": PRINT " A F T E R"
240 PRINT : PRINT "INDEX TAG STRING"
250 PRINT "----- --- ------"
260 FOR I = S TO F: PRINT RIGHT$(" " + STR$(I),3) + RIGHT$(" " + STR$(T%(I)),6) +" " +R$(I): NEXT
500 GOTO 32767
600 DATA THE
610 DATA QUICKSORT
620 DATA ALGORITHM
630 DATA IS
640 DATA USED
650 DATA AND
660 DATA THE
670 DATA SWAPPING
680 DATA IS
690 DATA DONE
700 DATA FOR
705 DATA POINTERS
710 DATA AND
720 DATA TAGS
730 DATA ONLY
740 DATA NEVER
750 DATA FOR
760 DATA THE
770 DATA STRINGS
780 DATA THEMSELVES
32767 END